#include <bits/stdc++.h>
using namespace std;

int n;
int a[1010];
int ans = 0x3f3f3f;

bool is_prime(int x)
{
    if (x < 2) return false;
    for (int i = 2; i <= x / i; i++)
        if (x % i == 0)
            return false;
    return true;
}

void dfs(int x, set<int> s, int temp)
{
    if (x == n)
    {
        ans = min(ans, temp);
        return;
    }
    for (int i = 2; i <= a[x]; i++)
    {
        if (a[x] % i == 0 && is_prime(i) && !s.count(i))
        {
            s.insert(i);
            dfs(x + 1, s, temp + i);
            s.erase(i);
        }
    }
}
int  main()
{
    cin >> n;
    for (int i = 0; i < n; i++)
        cin >> a[i];

    set<int> s;
    dfs(0, s, 0);
    if (ans == 0x3f3f3f)
        cout << -1;
    else
        cout << ans;
    return 0;

}